httpd_selinux(8) | httpd Selinux Policy documentation | httpd_selinux(8) |
НАЗВАНИЕ¶
httpd_selinux - Политика Security Enhanced Linux для демона httpd
ОПИСАНИЕ¶
Security-Enhanced Linux обеспечивает защиту сервера httpd при помощи гибко настраиваемого мандатного контроля доступа.
КОНТЕКСТ ФАЙЛОВ¶
SELinux требует наличия у файлов расширенных атрибутов, определяющих тип файла. Политика управляет видом доступа демона к этим файлам. Политика SELinux для демона httpd позволяет пользователям настроить web-службы максимально безопасным методом с высокой степенью гибкости.
Для httpd определены следующие контексты файлов:
httpd_sys_content_t
-
Установите
контекст
httpd_sys_content_t для
содержимого,
которое
должно
быть
доступно
для всех
скриптов httpd
и для
самого
демона.
httpd_sys_script_exec_t
-
Установите
контекст
httpd_sys_script_exec_t для
cgi-скриптов,
чтобы
разрешить
им доступ
ко всем
sys-типам.
httpd_sys_script_ro_t
-
Установите
на файлы
контекст
httpd_sys_script_ro_t если вы
хотите,
чтобы
скрипты
httpd_sys_script_exec_t могли
читать
данные, и
при этом
нужно
запретить
доступ
другим не-sys
скриптам.
httpd_sys_script_rw_t
-
Установите
на файлы
контекст
httpd_sys_script_rw_t если вы
хотите,
чтобы
скрипты
httpd_sys_script_exec_t могли
читать и
писать
данные, и
при этом
нужно
запретить
доступ
другим не-sys
скриптам.
httpd_sys_script_ra_t
-
Установите
на файлы
контекст
httpd_sys_script_ra_t если вы
хотите,
чтобы
скрипты
httpd_sys_script_exec_t могли
читать и
добавлять
данные, и
при этом
нужно
запретить
доступ
другим не-sys
скриптам.
httpd_unconfined_script_exec_t
-
Установите
на cgi-скрипты
контекст
httpd_unconfined_script_exec_t если
вы хотите
разрешить
им
исполняться
без
какой-либо
защиты SELinux.
Такой
способ
должен
использоваться
только для
скриптов с
очень
комплексными
требованиями,
и только в
случае,
если все
остальные
варианты
настройки
не дали
результата.
Лучше
использовать
скрипты с
контекстом
httpd_unconfined_script_exec_t, чем
выключать
защиту SELinux
для httpd.
ЗАМЕЧАНИЕ¶
Вместе с некоторыми политиками, вы можете определить дополнительные контексты файлов, основанные на ролях, таких как user или staff. Может быть определен контекст httpd_user_script_exec_t, который будет иметь доступ только к "пользовательским" контекстам.
СОВМЕСТНОЕ ВЛАДЕНИЕ ФАЙЛАМИ¶
Если вы хотите организовать между несколькими доменами (Apache, FTP, rsync, Samba) совместный доступ к файлам, то вы можете установить контекст файлов в public_content_t и public_content_rw_t. Данный контекст позволяет любому из выше перечисленных демонов читать содержимое. Если вы хотите, чтобы конкретный домен имел право записи в домен public_content_rw_t, вы должны установить соответствующий переключатель allow_ДОМЕН_anon_write. Таким образом, для httpd вы должны выполнить команду:
setsebool -P allow_httpd_anon_write=1
или
setsebool -P allow_httpd_sys_script_anon_write=1
ПЕРЕКЛЮЧАТЕЛИ (BOOLEANS)¶
Политика SELinux настроена исходя из принципа наименьших привилегий. Таким образом, по умолчанию SELinux препятствует работе некоторых http-скриптов. Политика httpd весьма гибка, и существующие переключатели управляют политикой, позволяя httpd выполняться с наименее возможными правами доступа.
Если вы хотите, чтобы httpd мог исполнять cgi-скрипты, установите переключатель httpd_enable_cgi
setsebool -P httpd_enable_cgi 1
По умолчанию демону httpd не разрешен доступ в домашние дерикториии пользователей. Если вы хотите разрешить доступ, вам необходимо установить переключатель httpd_enable_homedirs и изменить контекст тех файлов в домашних директориях пользователей, к которым должен быть разрешен доступ.
setsebool -P httpd_enable_homedirs 1 chcon -R -t httpd_sys_content_t ~user/public_html
По умолчанию демон httpd не имеет доступ к управляющему терминалу. В большинстве случаев такое поведение является предпочтительным. Это связанно с тем, что злоумышленник может попытаться использовать доступ к терминалу для получения привилегий. Однако, в некоторых ситуациях демон httpd должен выводить запрос пароля для открытия файла сертификата и в таких случаях нужен доступ к терминалу. Для того, чтобы разрешить доступ к терминалу, установите переключатель httpd_tty_comm.
setsebool -P httpd_tty_comm 1
httpd может быть настроен так, чтобы не разграничивать тип доступа к файлу на основании контекста. Иными словами, ко всем файлам, имеющим контекст httpd разрешен доступ на чтение/запись/исполнение. Установка этого переключателя в false, позволяет настроить политику безопасности таким образом, что одина служба httpd не конфликтует с другой.
setsebool -P httpd_unified 0
Имеется возможность настроить httpd таким образом, чтобы отключить встроенную поддержку скриптов (PHP). PHP и другие загружаемые модули работают в том же контексте, что и httpd. Таким образом, если используются только внешние cgi-скрипты, некоторые из правил политики разрешают httpd больший доступ к системе, чем необходимо.
setsebool -P httpd_builtin_scripting 0
По умолчанию httpd-скриптам запрещено устанавливать внешние сетевые подключения. Это не позволит хакеру, взломавшему ваш httpd-сервер, атаковать другие машины. Если вашим скриптам необходимо иметь возможность подключения, установите переключатель httpd_can_network_connect
setsebool -P httpd_can_network_connect 1
Для управления настройками SELinux существует графическая утилита system-config-selinux.
АВТОРЫ ¶
Эту страницу руководства написал Dan Walsh <dwalsh@redhat.com>. Перевод руководства - Андрей Маркелов <andrey@markelov.net>, 2007г.
СМОТРИ ТАКЖЕ¶
17 Янв 2005 | dwalsh@redhat.com |